import re

from openvoice.text.english import (
    english_to_ipa2,
    english_to_lazy_ipa,
    english_to_lazy_ipa2,
)
from openvoice.text.mandarin import (
    chinese_to_bopomofo,
    chinese_to_ipa,
    chinese_to_ipa2,
    chinese_to_lazy_ipa,
    chinese_to_romaji,
    latin_to_bopomofo,
    number_to_chinese,
)


def cjke_cleaners2(text):
    text = re.sub(
        r"\[ZH\](.*?)\[ZH\]", lambda x: chinese_to_ipa(x.group(1)) + " ", text
    )
    text = re.sub(
        r"\[JA\](.*?)\[JA\]", lambda x: japanese_to_ipa2(x.group(1)) + " ", text
    )
    text = re.sub(r"\[KO\](.*?)\[KO\]", lambda x: korean_to_ipa(x.group(1)) + " ", text)
    text = re.sub(
        r"\[EN\](.*?)\[EN\]", lambda x: english_to_ipa2(x.group(1)) + " ", text
    )
    text = re.sub(r"\s+$", "", text)
    text = re.sub(r"([^\.,!\?\-…~])$", r"\1.", text)
    return text
